#!/bin/bash
#
# Arch Linux ARM Image Builder
#
# Licensed under the GPLv2.
#
# This script builds an Arch Linux ARM distribution/image.
# First, it downloads and installs packages to the workingdir,
# then configures some basics, sets the root password to "root",
# and then creates a rootts.tar.gz and/or a UBI image, ready to flash.
#
# Usage: ./distro-builder workingdir
#
# NOTE: This script is interactive.
# Agree to installing packages and answer "y" to cleaning the Pacman database.
#
# ==== Variables to set ====
INSTALLEDPKGS="base kernel26 kernel26-headers file heimdal ntfs-3g openssh openssl"
RELEASEVER=2011.06
MAKETARGZ=1
# ==== The Process ====
mkdir -p $1
echo  -e "\033[1mInstalling packages...\033[0m"
mkdir -p $1/var/lib/pacman
pacman -Syyf --noconfirm --noprogressbar -r $1 $INSTALLEDPKGS

echo -e "\033[1mSetting the password to 'root' and cleaning up:\033[0m"
echo -e "root\nroot\n" | chroot $1/ /usr/bin/passwd root
rm $1/dev/{console,null,zero}
chroot $1/ mknod -m 600 /dev/console c 5 1
chroot $1/ mknod -m 666 /dev/null c 1 3
chroot $1/ mknod -m 666 /dev/zero c 1 5
rm $1/etc/locale.gen
echo "en_US.UTF-8 UTF-8" >> $1/etc/locale.gen
echo "en_US ISO-8859-1" >> $1/etc/locale.gen
echo "de_DE ISO-8859-1" >> $1/etc/locale.gen
echo "de_DE@euro ISO-8859-15" >> $1/etc/locale.gen
chroot $1/ /usr/sbin/locale-gen
chroot $1/ yes | /usr/bin/pacman -Scc
echo $RELEASEVER > $1/etc/alarm-version

# Here is the rootfs.tar.gz part if you set MAKETARGZ to 1
if [ $MAKETARGZ = 1 ]; then
     echo  -e "\033[1mCreating a rootfs.tar.gz...\033[0m"
     cd $1
     tar czf ../PlugApps-Linux-$RELEASEVER-rootfs.tar.gz ./*
     cd ../
else
     echo -e "\033[1mNot creating a rootfs.tar.gz...\033[0m"
fi

echo -e "\033[1mCleaning up...\033[0m"
rm -rf $1
